package com.demo.java.OD1_50.OD27;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【计算最大乘积】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145537700
 */
public class OdMain {

    // 检查两个字符串是否没有共同字符
    public static boolean checkSingle(String strOne, String strTwo) {
        char[] oneChars = strOne.toCharArray();  // 转换为字符数组
        char[] twoChars = strTwo.toCharArray();
        Arrays.sort(oneChars);  // 排序字符数组
        Arrays.sort(twoChars);

        int index1 = 0, index2 = 0;

        // 双指针法判断两个字符串是否有共同字符
        while (index2 < strTwo.length() && index1 < strOne.length()) {
            if (oneChars[index1] == twoChars[index2]) {
                return false;  // 如果有共同字符，返回 false
            } else if (oneChars[index1] > twoChars[index2]) {
                index2++;  // 如果 oneChars[index1] 比 twoChars[index2] 大，移动 index2
            } else {
                index1++;  // 如果 oneChars[index1] 比 twoChars[index2] 小，移动 index1
            }
        }
        return true;  // 如果没有共同字符，返回 true
    }

    public static void main(String[] args) {
        try {
            Scanner s = new Scanner(System.in);
            String[] lines = s.nextLine().split(",");  // 读取并分割输入字符串

            int maxValue = 0;  // 初始化最大乘积

            // 遍历所有字符串对
            for (int i = 0; i < lines.length; i++) {
                for (int j = i + 1; j < lines.length; j++) {
                    // 如果两个字符串没有共同字符，计算它们的乘积
                    if (checkSingle(lines[i], lines[j])) {
                        maxValue = Math.max(maxValue, lines[j].length() * lines[i].length());
                    }
                }
            }

            // 如果没有符合条件的字符串对，输出 0
            System.out.println(maxValue == 0 ? 0 : maxValue);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
